home *** CD-ROM | disk | FTP | other *** search
-
-
-
- BOOT.SYS QEMM.DOC Version 2.02
-
-
-
- BOOT.SYS(tm) and the accompanying programs and documentation are
-
-
- Copyright (c) 1989, 1990, 1991, 1993, 1994 Hans Salvisberg
- All rights reserved
-
-
-
- This file contains information related to using Quarterdeck's
- QEMM 7.01 (and probably later) under BOOT.SYS control:
-
- 1. What's special about QEMM 7.01+
- 2. How BOOT.SYS handles it
- 3. Using BOOT.EDIT
- 4. Using BOOT.RENAME
- 5. New Predicates
- 6. Running OPTIMIZE with BOOT.SYS installed
- 7. Using DOSDATA.SYS (7.02+) with DOS=LOW
- 8. Trouble-shooting
- 9. Acknowledgements
-
-
-
- 1. What's special about QEMM 7.01+
-
- Version 7.01 of QEMM introduced a new feature called DOS-Up,
- which loads a larger part of DOS into upper memory than DOS can
- do on its own. This feature is enabled with commands like:
-
- DEVICE=c:\qemm\DOSDATA.SYS
- DEVICE=c:\qemm\QEMM386.SYS <parameters>
- DEVICE=c:\qemm\DOS-UP.SYS @filename
-
- The general idea behind DOS-Up is this: Dosdata.Sys goes resi-
- dent and immediately restarts the boot process. Dosdata.Sys
- keeps control during the short reboot and can manage DOS as DOS
- boots up. DOS starts executing Config.Sys and loads Dosdata.Sys
- again. Dosdata.Sys detects that it's running for the second time
- and lets the boot process continue; it doesn't even display a
- sign-on message.
-
- In a single-configuration setting, this process is completely
- transparent and you as the user will probably not notice what's
- going on, as long as Dosdata.Sys is loaded at the top of Con-
- fig.Sys.
-
- However, in a multi-configuration setting with BOOT.SYS (or any
- other third-party configuration manager), you may not want to
- load Dosdata.Sys for all your configurations, and thus you can't
- put it at the top of Config.Sys.
-
-
-
- 2. How BOOT.SYS handles it
-
- Let's look at a sample Config.Sys fragment with BOOT.SYS
- installed:
-
- DEVICE=c:\boot\BOOT.SYS
- DEVICE=BOOT.1 Plain DOS
- {commands for Plain DOS configuration}
- DEVICE=BOOT.2 Maximum Lower Memory
- DEVICE=c:\qemm\DOSDATA.SYS
- DEVICE=c:\qemm\QEMM386.SYS <parameters>
- DEVICE=c:\qemm\DOS-UP.SYS @<filename>
- {more commands}
- DEVICE=BOOT.3 Yet Another Configuration
- {...}
- DEVICE=BOOT.END
-
- Notice that BOOT.SYS is at the top and Dosdata.Sys and its two
- companion drivers are in configuration #2 (MaxMem). Selecting
- the Plain DOS configuration will not load any of the QEMM driv-
- ers.
-
- If you want to boot up the MaxMem configuration, your boot
- sequence will look like this:
-
- 1. BOOT.SYS displays its menu and you select the MaxMem config-
- uration. BOOT.SYS detects that it will be followed by a
- driver called Dosdata.Sys. It saves your menu choice(s) in
- a safe place and passes control back to DOS to execute the
- configuration you selected.
-
- 2. DOS runs Dosdata.Sys, which restarts the boot process.
-
- 3. BOOT.SYS is called for the second time; it realizes that it
- was restarted via Dosdata.Sys and that you've already made
- your menu choice(s) in step 1, and it makes those same
- choices again for you, without redisplaying its menu(s).
- Then it returns control back to DOS.
-
- 4. Dos runs Dosdata.Sys again, which passes control back to DOS
- without even displaying a sing-on message.
-
- 5. The boot process continues normally with QEMM386.Sys, DOS-
- Up.Sys, etc.
-
- Thanks to the special DOS-Up support built into BOOT.SYS you will
- barely notice anything special going on, with one exception: the
- BOOT.EDIT command.
-
-
-
- 3. Using BOOT.EDIT
-
- The BOOT.EDIT command in BOOT.SYS lets you edit selected Con-
- fig.Sys lines on-the-fly while booting up (see the BOOT.SYS docu-
- mentation). You can use BOOT.EDIT with all executable commands,
- but if DOS-Up is present, the editing needs to be done either in
- the first or the second pass, depending on what command you want
- to edit. We need to distinguish four categories of commands:
-
- A. DOS= commands are presented for editing during the first
- pass (step 1 in the list above). This is a technical
- restriction.
-
- B. BOOT.SET commands can be used in various ways, e.g. to
- change the menu structure on-the-fly by changing a BOOT.?
- condition, and/or to set different parameters for drivers
- loaded later on. In the former situation, a variable needs
- to have its proper value during both passes, in the latter
- situation only in the second pass, but BOOT.SYS cannot tell
- what a variable will be used for, and it presents BOOT.SET
- commands in both passes for editing (more below).
-
- C. All other editable commands following Dosdata.Sys are only
- presented in the second pass (step 3).
-
- D. There should usually be no commands preceding Dosdata.Sys.
- If there are any, they are treated like BOOT.SET.
-
- It is inconvenient and often unnecessary to make the same edits
- twice for BOOT.SET commands (and commands in category D). If you
- know that a certain variable will only be used during the second
- pass (step 3), e.g. because it serves as a parameter to a device
- driver that won't be loaded until the second pass, you can add
- the /Q2 parameter to the BOOT.EDIT command. For symmetry reasons
- /Q1 is also allowed even though we do not see any practical
- application for it.
-
- There is a simple test for finding out when you can use /Qi: if a
- variable is really used in both passes, you need to make exactly
- the same edits twice for the boot process to work as intended.
- If it's only used in one pass (pass i), then it doesn't matter
- what value it has in the other pass.
-
- The complete syntax for BOOT.EDIT looks like this:
-
- DEVICE=BOOT.EDIT [/Qi] [/Tn] [text]
-
- The /Qi parameter should only be used with commands in categories
- B and D--all other commands are handled automatically by
- BOOT.SYS. If both /Qi and /Tn are given, /Qi has to come first.
-
-
-
- 4. Using BOOT.RENAME
-
- Any BOOT.RENAME commands will be carried out in pass 1 and
- ignored in pass 2.
-
-
-
- 5. New Predicates
-
- The new predicates QEMM_PASS1 and QEMM_PASS2 can be used with
- BOOT.IF if you need to distinguish between the two passes; they
- are true in the presence of Dosdata.Sys only. QEMM_PASS1 is only
- true below the Dosdata.Sys line!
-
-
-
- 6. Running OPTIMIZE with BOOT.SYS installed
-
- Quarterdeck's OPTIMIZE was not designed to handle BOOT.SYS
- correctly. To run OPTIMIZE, you need to manually extract the
- configuration you wish to optimize, run OPTIMIZE, and manually
- reinsert the optimized configuration into Config.Sys.
-
- An alternative is to TRY to run OPTIMIZE with BOOT.SYS in place:
-
- 0. Create the file OPTIMIZE.EXC in your c:\qemm directory with
- the single line
- BOOT
- in it. If there already is an OPTIMIZE.EXC file, just add
- that line at the bottom. You only have to do this once.
- The remaining steps have to be done every time you wish to
- run OPTIMIZE.
-
- 1. For every configuration that has QEMM in it (EXCEPT for the
- one you wish to optimize) comment out the lines
- DEVICE=c:\qemm\DOSDATA.SYS
- DEVICE=c:\qemm\QEMM386.SYS ...
- DEVICE=c:\qemm\DOS-UP.SYS ...
- by putting REM in front of each.
-
- 2. Run OPTIMIZE and select the proper configuration on the boot
- menu(s) each time. After OPTIMIZE has completed success-
- fully:
-
- 3. Put the
- DEVICE=c:\qemm\DOSDATA.SYS
- line back where it belongs (OPTIMIZE moves it to the top of
- the file).
-
- 4. OPTIMIZE will always change the DOS-Up.Sys line to
- DEVICE=c:\qemm\DOS-UP.SYS @c:\qemm\DOS-UP.DAT
- no matter what the name of the data file was. If you have
- more than one QEMM configuration, you have to use different
- versions of DOS-UP.DAT for each: you have to change the
- file name on the DOS-Up.Sys line back to the proper name for
- this configuration and rename the newly optimized DOS-UP.DAT
- file accordingly.
-
- 5. Remove the REM's that you inserted in step 1.
-
- We have had some success in running OPTIMIZE this way, even if
- other memory managers were present in other configurations, but
- there's no guarantee this will work in all cases. You will have
- to experiment with your particular setup and you should compare
- the optimized Config.Sys line for line with the original one
- (usually saved as CONFIG.QDK) at least once to make sure the
- OPTIMIZE process doesn't introduce any other unwanted changes
- that you need to undo (besides 3 and 4 above).
-
-
-
- 7. Using DOSDATA.SYS (7.02+) with DOS=LOW
-
- Version 7.02 of QEMM has brought us another small twist. If you
- have set up BOOT.SYS with DOS=HIGH,NOUMB at the bottom of CON-
- FIG.SYS, as recommended, and you want to use DOSDATA.SYS in a
- DOS=LOW configuration, your PC may not be able to boot up under
- MS/PC-DOS 5.0 and later.
-
- You can work around the problem by adding an undocumented parame-
- ter to the DEVICE=c:\qemm\DOSDATA.SYS line, depending on your DOS
- version and whether you use disk compression:
-
- DOS 5.x /INITBASE=1101
- DOS 6.x /INITBASE=1101
- DOS 6.x with Stacker /INITBASE=1A01
- DOS 6.x with DoubleSpace /INITBASE=1201
-
- The parameter you supply is just a rough estimate and DOSDATA.SYS
- will do the necessary fine-tuning automatically.
-
- If you should be unable to boot up with the values above, here is
- the procedure to find out the correct value for your system:
-
- 1. Add the undocumented switch /REPORT to the DEVI-
- CE=c:\qemm\DOSDATA.SYS line and boot up with DOS=HIGH. Note
- the value reported by DOSDATA.SYS.
-
- 2. Add 0A00h (hexadecimal) to the value; high negative numbers
- will roll over to small positive ones. If you don't know
- how to do hexadecimal arithmetics ask a friend or contact
- us.
-
- 3. Use this value for /INITBASE=hhhh.
-
- /INITBASE is needed with QEMM 7.02 and 7.03. Later versions may
- not need it anymore.
-
-
-
- 8. Trouble-shooting
-
- We sometimes get error reports caused by improper use of QEMM.
- Please consider the following notes before contacting us. We
- believe the information presented here is correct, but of course
- the Quarterdeck documentation and tech support have the final
- word.
-
- - If Dosdata.Sys is loaded, it must always be followed by DOS-
- Up.Sys, otherwise your system will hang.
-
- - The typical load sequence is BOOT.SYS, Dosdata.Sys,
- QEMM386.Sys, and DOS-Up.Sys. If you have a reason for omit-
- ting QEMM386.Sys, DOS-Up.Sys can be made to continue without
- waiting for a key press by adding the NOPAUSE parameter.
-
- - QSETUP and OPTIMIZE always put Dosdata.Sys at the very top
- of Config.Sys. According to our tests Dosdata.Sys doesn't
- mind running after other drivers (such as BOOT.SYS) and
- other commands (such as the ones that are often listed above
- BOOT.SYS to provide BUFFERS, FILES, STACKS, etc. defaults
- for all configurations). However, if there is a problem,
- try moving these other commands below Dosdata.Sys.
-
- - You can bypass installation of Dosdata.Sys and/or
- QEMM386.Sys by holding down the Alt key while DOS is loading
- the driver and pressing the Esc key at the prompt. To
- bypass both drivers you need to depress the Alt key again
- very quickly after the first Esc.
-
-
-
- 9. Acknowledgements
-
- Thanks to Phil Gardner and Michael Chapman of Quarterdeck for
- their help in implementing the DOS-Up support.
-
- QEMM is a registered trademark of Quarterdeck Office Systems.
-